package com.own.business.system.account.common.hook;

import com.own.business.system.account.common.base.BaseAccountType;

/**
 * AccountHook
 *
 * @author chenxueli
 * @date 2022-09-12 13:25:00
 */
public interface AccountHook {

    /**
     * 添加账号信息（无密码）
     *
     * @param account     账号
     * @param userId      用户id
     * @param accountType 账号类型 1=普通用户 2=管理员
     */
    default void add(String account, Long userId, int accountType) {
        add(account, userId, accountType, null);
    }

    /**
     * 添加账号信息
     *
     * @param account     账号
     * @param userId      用户id
     * @param password    密码（未加密）
     * @param accountType 账号类型 1=普通用户 2=管理员
     */
    void add(String account, Long userId, int accountType, String password);

    /**
     * 账号的类型
     *
     * @return 账号的类型
     */
    BaseAccountType type();

}
